import Vue from 'vue';
import x2js from 'x2js'; // 创建x2js对象，挂到vue原型上
import VuePreview from 'vue-preview';
import App from './App.vue';
import router from './router';
import './plugins/element';
import './plugins/toy';
import Bus from './plugins/bus';

import { beforeCreateInit, mountedInit } from './init';

// defalut install
Vue.use(VuePreview);
// xml数据处理插件
// eslint-disable-next-line new-cap
Vue.prototype.$x2js = new x2js();

Vue.config.productionTip = false;
Vue.use(Bus);

const initVue = async () => {
  // 必须系统加载前初始化的方法
  await beforeCreateInit();

  new Vue({
    router,
    created() {},
    mounted() {
      // 可以在系统加载后再初始化的方法，节省系统初始加载时间
      mountedInit();
    },
    render: (h) => h(App),
  }).$mount('#app');
};
initVue();
